FastReport - tisk DBGridu
Otázka od: Jaroslav Uher
16. 4. 2004 15:14
Ahoj,
nedari se mi napojeni TfrPrintGrid na vlastni Preview
PrintGrid1.BuildReport;
PrintGrid1.Preview := FormPrintPreviewFR.frPreview;
FormPrintPreviewFR.ShowModal;
se zobrazi prazdny.
Muze, prosim nekdo poradit ?
Diky,
preji hezky den
Jarek Uher
Odpovedá: Miso
16. 4. 2004 15:14
----- Original Message -----
From: "Jaroslav Uher" <jarek@iuher.cz>
> nedari se mi napojeni TfrPrintGrid na vlastni Preview
>
> PrintGrid1.BuildReport;
> PrintGrid1.Preview := FormPrintPreviewFR.frPreview;
> FormPrintPreviewFR.ShowModal;
>
..najskor ti tam asi chyba PrintGrid1.ShowReport..
..vzorovu pokusnu aplikaciu ti posielam na sukromny mail
Miso
Odpovedá: Jaroslav Uher
16. 4. 2004 15:53
On 16 Apr 2004 at 15:21, Miso wrote:
> > nedari se mi napojeni TfrPrintGrid na vlastni Preview
> >
> > PrintGrid1.BuildReport;
> > PrintGrid1.Preview := FormPrintPreviewFR.frPreview;
> > FormPrintPreviewFR.ShowModal;
> ..najskor ti tam asi chyba PrintGrid1.ShowReport..
> ..vzorovu pokusnu aplikaciu ti posielam na sukromny mail
diky, ale to ja umim, dva roky jsem delal s FreeReportem.
Ja potrebuji dynamicky tiskout z libovolneho DBGridu pole, ktere si
uzivatel predtim vybere. Nechci na kazdou sestavu tvorit report
rucne. Pole mohou byt 3, ale take 30.
V FreeReportu to nebyl az takovy problem, stacilo v Designeru polozit
BandCrossData, MasterHeader, MasterData a v
procedure TFormPrintDBGrid.frReport1PrintColumn(ColNo: Integer;
var Width: Integer);
begin
// ColNo zacina 1
if CheckListBox.Checked[ColNo -1] // jen zvolene sloupce
then Width := DBGridPrn.Columns[ColNo -1].Width +
(Canvas.TextWidth('0'))
else Width := 0;
FWidth := Width;
end;
si nastavit potrebnou sirku sloupcu
a tady ji aplikovat
procedure TFormPrintDBGrid.frReport1EnterRect(Memo: TStringList;
View: TfrView);
begin
if Memo[0] = '[Header]' then // je pro DBGrid
begin
View.dx := FWidth;
if PrintFrame // tisk ramecku
then View.FrameTyp := frftRight + frftBottom + frftLeft +
frftTop // full frame
else View.FrameTyp := 0; // no frame
end;
if Memo[0] = '[Cell]' then // je pro DBGrid
begin
View.dx := FWidth;
if PrintFrame // tisk ramecku
then View.FrameTyp := frftRight + frftBottom + frftLeft +
frftTop // full frame
else View.FrameTyp := 0; // no frame
end;
end;
Bohuzel ve FastReportu mi View.dx := FWidth vubec nereaguje a
View.FrameTyp take NE.
Ve FastReportu jsem nasel komponenu TfrPrintGrid, ktera vse umi
SUPER, jen mi odmita presmerovani na vlastni Preview, a data se
zobrazi jen na jejich Preview (PrintGrid1.ShowReport).
Jarek Uher